Telegram Group »
United States »
Библиотека пхпшника | PHP Laravel Symfony CodeIgniter » Telegram Webview
💻 Подборка новостей по PHP за неделю:
🔎 Laravel 12.4: Поддержка конвейеров в построителе запросов
Команда Laravel выпустила версию 12.4.0, которая включает метод
🔎 Eloquent: Приведение строк к HTML в Laravel 12.4
Начиная с версии 12.4, в Laravel можно автоматически приводить атрибуты Eloquent к HTML-строкам с помощью кастомного класса AsHtmlString. Это позволяет безопасно работать с HTML-содержимым в моделях.
🔎 Релизы Symfony 6.4.20 и 7.2.5
Symfony объявил о выходе версий 6.4.20 и 7.2.5, содержащих важные исправления и улучшения. Рекомендуется обновиться до этих версий для обеспечения стабильности и безопасности приложений.
🔎 Неделя Symfony #952 (24–30 марта 2025 года)
Библиотека пхпшника #свежак
🔎 Laravel 12.4: Поддержка конвейеров в построителе запросов
Команда Laravel выпустила версию 12.4.0, которая включает метод
pipe()
для построителя запросов, возможность условного пропуска миграций, метод Arr::sole()
и другие улучшения. 🔎 Eloquent: Приведение строк к HTML в Laravel 12.4
Начиная с версии 12.4, в Laravel можно автоматически приводить атрибуты Eloquent к HTML-строкам с помощью кастомного класса AsHtmlString. Это позволяет безопасно работать с HTML-содержимым в моделях.
🔎 Релизы Symfony 6.4.20 и 7.2.5
Symfony объявил о выходе версий 6.4.20 и 7.2.5, содержащих важные исправления и улучшения. Рекомендуется обновиться до этих версий для обеспечения стабильности и безопасности приложений.
🔎 Неделя Symfony #952 (24–30 марта 2025 года)
Библиотека пхпшника #свежак
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
Как использовать принцип инверсии управления в Laravel?
Принцип инверсии управления (Inversion of Control, IoC) в Laravel реализуется с помощью сервис-контейнера, который управляет зависимостями между классами и их внедрением. Это позволяет создавать гибкую и тестируемую архитектуру приложений.
В нашем примере:
Определяется интерфейс
Класс
Класс
В сервис-контейнере Laravel регистрируется связь между
Создание экземпляра
Использование IoC в Laravel позволяет:
🔸 Разделить ответственность между классами, делая их более независимыми и удобными для тестирования.
🔸 Легко заменять реализации зависимостей, например, для использования другого платежного шлюза, достаточно зарегистрировать новую реализацию в контейнере.
🔸 Упрощает тестирование, позволяя подменять реальные реализации зависимостей на заглушки или моки.
Принцип инверсии управления (Inversion of Control, IoC) в Laravel реализуется с помощью сервис-контейнера, который управляет зависимостями между классами и их внедрением. Это позволяет создавать гибкую и тестируемую архитектуру приложений.
В нашем примере:
Определяется интерфейс
PaymentGatewayInterface
с методом charge
, который должен быть реализован любым платежным шлюзом.Класс
StripePaymentGateway
реализует этот интерфейс, предоставляя конкретную логику для обработки платежей через Stripe.Класс
OrderProcessor
зависит от PaymentGatewayInterface
. Вместо создания экземпляра конкретного платежного шлюза внутри себя, он получает его через конструктор, что соответствует принципу инверсии управления.В сервис-контейнере Laravel регистрируется связь между
PaymentGatewayInterface
и его реализацией StripePaymentGateway
с помощью метода $app->bind()
.Создание экземпляра
OrderProcessor
осуществляется через сервис-контейнер с помощью метода $app->make()
, который автоматически внедрит необходимые зависимости.Использование IoC в Laravel позволяет:
🔸 Разделить ответственность между классами, делая их более независимыми и удобными для тестирования.
🔸 Легко заменять реализации зависимостей, например, для использования другого платежного шлюза, достаточно зарегистрировать новую реализацию в контейнере.
🔸 Упрощает тестирование, позволяя подменять реальные реализации зависимостей на заглушки или моки.
PHP под капотом: как работает генерация случайных чисел
Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.
Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!
🔗 Хабр
Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.
Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!
🔗 Хабр
Метод «skip» у планировщика
Иногда вы можете захотеть пропустить выполнение команды, основываясь на определенном условии. Laravel включает метод «
Библиотека пхпшника #буст
Иногда вы можете захотеть пропустить выполнение команды, основываясь на определенном условии. Laravel включает метод «
skip
» для выполнения этого 🚀Библиотека пхпшника #буст
Forwarded from hahacker news
📚🔄 OTUS – лауреат премии «Цифровые вершины»: как подписка на обучение меняет IT-образование
Платформа OTUS представила инновационный подход к IT-обучению, запустив сервис подписки, предоставляющий доступ к 151 курсу по ключевым направлениям индустрии. Этот формат позволяет специалистам гибко выбирать образовательные треки и проходить до трех курсов одновременно без дополнительных затрат, что значительно снижает расходы на обучение.
В 2025 году OTUS была удостоена премии «Цифровые вершины» в номинации «Лучшее IT-решение для образования», что подтверждает эффективность и востребованность их модели обучения. Благодаря подписке, IT-специалисты могут непрерывно обновлять свои знания и навыки, оставаясь конкурентоспособными в стремительно развивающейся сфере.
🔗 Подробности в статье
Платформа OTUS представила инновационный подход к IT-обучению, запустив сервис подписки, предоставляющий доступ к 151 курсу по ключевым направлениям индустрии. Этот формат позволяет специалистам гибко выбирать образовательные треки и проходить до трех курсов одновременно без дополнительных затрат, что значительно снижает расходы на обучение.
В 2025 году OTUS была удостоена премии «Цифровые вершины» в номинации «Лучшее IT-решение для образования», что подтверждает эффективность и востребованность их модели обучения. Благодаря подписке, IT-специалисты могут непрерывно обновлять свои знания и навыки, оставаясь конкурентоспособными в стремительно развивающейся сфере.
Please open Telegram to view this post
VIEW IN TELEGRAM
Пхпшники!
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый пхпшник.
➡️ Поддержать канал: https://www.tg-me.com/boost/Библиотека пхпшника | PHP Laravel Symfony CodeIgniter/com.phpproglib
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый пхпшник.
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Hypervel — новый фреймворк PHP с нативной поддержкой корутин
Если вам нравится Laravel, но не хватает производительности в I/O-нагруженных проектах — знакомьтесь с Hypervel. Это высокопроизводительный PHP-фреймворк, вдохновлённый Laravel, но построенный на Swoole и с полной поддержкой корутин прямо из коробки.
🤔 Зачем Hypervel, если есть Laravel Octane?
Octane — это круто, он ускоряет Laravel за счёт долгоживущего процесса. Но вот беда: Octane не умеет в неблокирующий I/O.
Допустим, у вас чат-бот на Laravel, и каждый запрос к ИИ занимает 3–5 секунд. Даже с 10 worker-ами ты не обработаешь 100 параллельных запросов — они просто встанут в очередь. Почему? Потому что все воркеры блокируются на время I/O-операций.
Laravel по своей архитектуре не рассчитан на корутины. И в ближайшем будущем это не изменится.
⚡️ Что умеет Hypervel?
✅ Почти полная совместимость с Laravel API
✅ Корутины — из коробки
✅ QPS в 10+ раз выше Octane (в I/O-нагрузке — в 100+ раз)
✅ Поддержка object/connection pool (DB, Redis, HTTP и др.)
✅ Корутинная обработка очередей и cron-задач
✅ Кеши, очереди, блокировки — совместимы с Laravel
✅ Подходит для микросервисов, API-шлюзов, высоконагруженных систем
🧵 Корутины — главная фишка
Корутина — это как функция, которая может «поставиться на паузу», пока идёт I/O (запрос к БД, файл, сеть), и не блокировать весь процесс. Hypervel использует Swoole, где всё работает на корутинах: HTTP, DB, Redis, файлы и даже стандартные функции PHP.
💡 Один процесс в Hypervel может обрабатывать сотни задач параллельно — без запуска 100+ воркеров.
📊 Бенчмарки
Hello World (без I/O): Hypervel в 10 раз быстрее Octane
Симуляция I/O (sleep 1 сек): Hypervel в сотни раз быстрее
👉 Читать статью
Если вам нравится Laravel, но не хватает производительности в I/O-нагруженных проектах — знакомьтесь с Hypervel. Это высокопроизводительный PHP-фреймворк, вдохновлённый Laravel, но построенный на Swoole и с полной поддержкой корутин прямо из коробки.
🤔 Зачем Hypervel, если есть Laravel Octane?
Octane — это круто, он ускоряет Laravel за счёт долгоживущего процесса. Но вот беда: Octane не умеет в неблокирующий I/O.
Допустим, у вас чат-бот на Laravel, и каждый запрос к ИИ занимает 3–5 секунд. Даже с 10 worker-ами ты не обработаешь 100 параллельных запросов — они просто встанут в очередь. Почему? Потому что все воркеры блокируются на время I/O-операций.
Laravel по своей архитектуре не рассчитан на корутины. И в ближайшем будущем это не изменится.
⚡️ Что умеет Hypervel?
✅ Почти полная совместимость с Laravel API
✅ Корутины — из коробки
✅ QPS в 10+ раз выше Octane (в I/O-нагрузке — в 100+ раз)
✅ Поддержка object/connection pool (DB, Redis, HTTP и др.)
✅ Корутинная обработка очередей и cron-задач
✅ Кеши, очереди, блокировки — совместимы с Laravel
✅ Подходит для микросервисов, API-шлюзов, высоконагруженных систем
🧵 Корутины — главная фишка
Корутина — это как функция, которая может «поставиться на паузу», пока идёт I/O (запрос к БД, файл, сеть), и не блокировать весь процесс. Hypervel использует Swoole, где всё работает на корутинах: HTTP, DB, Redis, файлы и даже стандартные функции PHP.
💡 Один процесс в Hypervel может обрабатывать сотни задач параллельно — без запуска 100+ воркеров.
📊 Бенчмарки
Hello World (без I/O): Hypervel в 10 раз быстрее Octane
Симуляция I/O (sleep 1 сек): Hypervel в сотни раз быстрее
👉 Читать статью
🔧 CLI-лайфхак для PHP-разработчиков: Быстрое выполнение одноразовых команд с помощью опции -r 🚀
Полезная команда, которая позволяет выполнять небольшие фрагменты PHP-кода прямо из командной строки без создания отдельных файлов. Это особенно удобно для быстрого тестирования идей или выполнения одноразовых задач 🖥️
Как это сделать?
1. Откройте терминал на вашем компьютере.
2 Введите следующую команду, заменив код внутри одинарных кавычек на нужный вам PHP-код:
Почему это удобно?
🔸 Быстрота: нет необходимости создавать отдельный файл для выполнения небольшого фрагмента кода.
🔸 Удобство: идеальный способ для тестирования небольших функций или выражений.
🔸 Гибкость: позволяет комбинировать PHP с другими командными инструментами для автоматизации задач.
Обратите внимание:
Экранирование кавычек: при использовании одинарных кавычек внутри PHP-кода их необходимо экранировать обратным слэшем (\'), чтобы избежать конфликтов с внешними кавычками.
Библиотека пхпшника #буст
Полезная команда, которая позволяет выполнять небольшие фрагменты PHP-кода прямо из командной строки без создания отдельных файлов. Это особенно удобно для быстрого тестирования идей или выполнения одноразовых задач 🖥️
Как это сделать?
1. Откройте терминал на вашем компьютере.
2 Введите следующую команду, заменив код внутри одинарных кавычек на нужный вам PHP-код:
php -r 'echo «Привет, мир!\n»;'
Почему это удобно?
🔸 Быстрота: нет необходимости создавать отдельный файл для выполнения небольшого фрагмента кода.
🔸 Удобство: идеальный способ для тестирования небольших функций или выражений.
🔸 Гибкость: позволяет комбинировать PHP с другими командными инструментами для автоматизации задач.
Обратите внимание:
Экранирование кавычек: при использовании одинарных кавычек внутри PHP-кода их необходимо экранировать обратным слэшем (\'), чтобы избежать конфликтов с внешними кавычками.
php -r 'echo \'Это строка с одинарными кавычками.\' . «\n»;'
Библиотека пхпшника #буст
📣 Программисты, нужен ваш совет
Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!
Какой ноут спасает вас в кодинге и почему?
Расскажите все:
🔹 Что за зверь (модель, начинка)
🔹 Где жмет и где радует в ежедневной работе
🔹 На какие фишки смотреть при выборе
🔹 Как вам с ним живется
Топовые советы попадут в нашу статью. Сделаем годный гайд, который реально поможет коллегам.
💬 Делитесь в комментах
Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!
Какой ноут спасает вас в кодинге и почему?
Расскажите все:
🔹 Что за зверь (модель, начинка)
🔹 Где жмет и где радует в ежедневной работе
🔹 На какие фишки смотреть при выборе
🔹 Как вам с ним живется
Топовые советы попадут в нашу статью. Сделаем годный гайд, который реально поможет коллегам.
💬 Делитесь в комментах
🔥 Ускоряем тесты с ParaTest
Если вы часто сталкиваетесь с медленными тестами и хоите ускорить процесс разработки, стоит попробовать ParaTest. Этот инструмент позволяет запускать тесты параллельно, что значительно сокращает время выполнения, особенно на больших проектах.
Почему стоит использовать ParaTest:
🔸 Параллельное выполнение: тесты запускаются в несколько процессов одновременно, что ускоряет их выполнение.
🔸 Преимущества для CI: особенно полезно для непрерывной интеграции — тесты запускаются быстрее, что ускоряет релизы.
🔸 Простая установка: ParaTest можно интегрировать почти как замену PHPUnit без серьезных изменений в коде.
Какие проблемы могут возникнуть:
При параллельном запуске могут возникнуть ошибки, связанные с одновременным доступом к базе данных (например, при попытке создать одинаковые таблицы). Для этого нужно изменить конфигурацию тестов, чтобы каждый тест использовал транзакции или запускал миграции до начала тестов.
Как решить:
🔹 Используй
🔹 В случае с SQLite можно оставить стандартные настройки, так как каждая база будет независимой.
Результат:
После настройки ParaTest ты можешь увидеть ускорение в 2-10 раз, особенно на крупных проектах. Это заметно сокращает время, которое тратится на тестирование, и помогает быстрее доставлять код в продакшн.
💡 Совет: если проект большой, начинай с разделения тестов на группы и постепенно переводя их на параллельное выполнение, чтобы получать результат сразу.
🔗 Читать Статью
Библиотека пхпшника
Если вы часто сталкиваетесь с медленными тестами и хоите ускорить процесс разработки, стоит попробовать ParaTest. Этот инструмент позволяет запускать тесты параллельно, что значительно сокращает время выполнения, особенно на больших проектах.
Почему стоит использовать ParaTest:
🔸 Параллельное выполнение: тесты запускаются в несколько процессов одновременно, что ускоряет их выполнение.
🔸 Преимущества для CI: особенно полезно для непрерывной интеграции — тесты запускаются быстрее, что ускоряет релизы.
🔸 Простая установка: ParaTest можно интегрировать почти как замену PHPUnit без серьезных изменений в коде.
Какие проблемы могут возникнуть:
При параллельном запуске могут возникнуть ошибки, связанные с одновременным доступом к базе данных (например, при попытке создать одинаковые таблицы). Для этого нужно изменить конфигурацию тестов, чтобы каждый тест использовал транзакции или запускал миграции до начала тестов.
Как решить:
🔹 Используй
DatabaseTransactions
вместо RefreshDatabase
для предотвращения конфликтов в базе данных при параллельном запуске.🔹 В случае с SQLite можно оставить стандартные настройки, так как каждая база будет независимой.
Результат:
После настройки ParaTest ты можешь увидеть ускорение в 2-10 раз, особенно на крупных проектах. Это заметно сокращает время, которое тратится на тестирование, и помогает быстрее доставлять код в продакшн.
💡 Совет: если проект большой, начинай с разделения тестов на группы и постепенно переводя их на параллельное выполнение, чтобы получать результат сразу.
🔗 Читать Статью
Библиотека пхпшника
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
В каждой команде бывают специалисты, чья ценность не укладывается в привычные метрики продуктивности. Они редко в топе по количеству закрытых задач, но именно их вклад критически важен для общего результата.
Такие люди помогают менее опытным коллегам разобраться в сложных вопросах, улучшают архитектуру и процессы незаметными правками, предотвращают ошибки ещё до того, как они стали задачами, создают культуру качества, которую не видно в отчётах.
Иногда стоит пересмотреть, как мы оцениваем эффективность. Потому что не все цифры отражают суть.
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Разбор ключевых трендов ОС на персональных компьютерах и мобильных устройствах за последние 44 года! Как Windows уступил лидерство мобильным платформам, а Linux закрепил позиции в качестве базиса для множества систем — смотрите в видео.
1981–2000: анализ продаж ПК и опросы пользователей.
2000–2025: отчёты интернет-провайдеров и данные веб-трафика.
🔗 Оригинал с ютуба
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему вы должны указывать тип данных в массивах в PHP
Статья обсуждает важность и преимущества использования типов массивов в PHP для повышения ясности кода, улучшения автодополнения в IDE и улучшения статического анализа.
👉 Читать
Библиотека пхпшника
Статья обсуждает важность и преимущества использования типов массивов в PHP для повышения ясности кода, улучшения автодополнения в IDE и улучшения статического анализа.
👉 Читать
Библиотека пхпшника
❓ Нужны ли PHP value objects как first-class citizen?
PHP в последние годы очень сильно поменялся. Типизация стала строже, появились enum'ы, readonly-свойства, promoted параметры в конструкторах… Но полноценной поддержки value objects (VO) — по-прежнему нет.
Хочешь передать Email, Amount или Money как обособленную сущность? Пиши класс руками. Хочешь избежать дублирования — делай свой фреймворк, или подтягивай Symfony/Doctrine компоненты. Где компактный и удобный синтаксис? Где встроенные механизмы сравнения, сериализации, валидации?
В других языках (Scala, Kotlin, Rust) это уже часть культуры. А у нас всё ещё debate.
💬 Вопрос к вам, PHP-разработчики:
— Почему, по-вашему, в PHP до сих пор нет нативной поддержки value objects?— Нужны ли они вообще как встроенная часть языка?— Может, достаточно классов и самодисциплины?
Библиотека пхпшника #междусобойчик
PHP в последние годы очень сильно поменялся. Типизация стала строже, появились enum'ы, readonly-свойства, promoted параметры в конструкторах… Но полноценной поддержки value objects (VO) — по-прежнему нет.
Хочешь передать Email, Amount или Money как обособленную сущность? Пиши класс руками. Хочешь избежать дублирования — делай свой фреймворк, или подтягивай Symfony/Doctrine компоненты. Где компактный и удобный синтаксис? Где встроенные механизмы сравнения, сериализации, валидации?
В других языках (Scala, Kotlin, Rust) это уже часть культуры. А у нас всё ещё debate.
💬 Вопрос к вам, PHP-разработчики:
— Почему, по-вашему, в PHP до сих пор нет нативной поддержки value objects?— Нужны ли они вообще как встроенная часть языка?— Может, достаточно классов и самодисциплины?
Библиотека пхпшника #междусобойчик
Instructor
Библиотека для структурированной экстракции данных на PHP, основанная на LLM. Создан для простоты, прозрачности и контроля.
Пример показывает, как инструктор извлекает структурированную информацию из предоставленного текста (или последовательности сообщений в чате).
🔗 Github
#инструменты
Библиотека для структурированной экстракции данных на PHP, основанная на LLM. Создан для простоты, прозрачности и контроля.
Пример показывает, как инструктор извлекает структурированную информацию из предоставленного текста (или последовательности сообщений в чате).
🔗 Github
#инструменты
Метод
Это полезно, если вам нужно получить конкретный набор моделей и вы не хотите проверять, соответствует ли полученное количество ожидаемому количеству.
Библиотека пхпшника #буст
findOrFail
также принимает список идентификаторов. Если какой-либо из этих идентификаторов не найден, то он «ошибочен».Это полезно, если вам нужно получить конкретный набор моделей и вы не хотите проверять, соответствует ли полученное количество ожидаемому количеству.
Библиотека пхпшника #буст
Forwarded from Библиотека задач по PHP | тесты, код, задания
Что выведет код?
❤️ — Fatal error
👍 — 2
🔥 — 1
❤️ — Fatal error
👍 — 2
🔥 — 1